// 函数的重载： 函数的名称相同，但是参数不同的几个函数


// 下面就是函数的重载，可以看出只是定义了函数的不同类型的参数，我们还没有写具体的函数的实现
function add(num1: number, num2: number): number;  // 没有函数体 
function add(num1: string, num2: string): string;  // 没有函数体
// 编写函数的实现(需要注意的是这里的类型需要更加广泛一点)
function add(num1: any, num2: any): any {
  return num1 + num2;
}
// 具体的使用
const result1 = add(10, 20);
const result2 = add('10', '20');
// 下面这个调用就会报错，因为在重载的时候会去匹配上面的参数，匹配不到则会报错
// add({ name: 'cht', age: 10 }, { name: 'hw', age: 10 })

export { }